Apache Virtual Hosts op Ubuntu
Stappenplan
- Maak de directory voor uw_domein We maken een directorystructuur binnen /var/www voor een site met uw_domein, waarbij /var/www/html op zijn plaats blijft als de standaarddirectory voor een verzoek van een client niet overeenkomt met andere sites. Daarin maken we een public_html submap zodat we een map hoger hebben om configuratiebestanden in te plaatsen:
sudo mkdir /var/www/your_domain sudo mkdir /var/www/your_domain/public_html
bijvoorbeeld:sudo mkdir /var/www/epreuvedartiste sudo mkdir /var/www/epreuvedartiste/public_html
- Ken de eigendomsrechten van de directory toe aan de eigenaar met de omgevingsvariabele $USER:
sudo chown -R $USER:$USER /var/www/your_domain
Bijvoorbeeld:
sudo chown -R epreuvedartiste:epreuvedartiste /var/www/epreuvedartiste
- Om ervoor te zorgen dat de eigenaar de bestanden kan lezen, schrijven en uitvoeren terwijl bezoekers van de website alleen lees- en uitvoeringsrechten hebben, voer je de volgende opdracht in:
sudo chmod -R 755 /var/www/your_domain
Bijvoorbeeld:sudo chmod -R 755 /var/www/epreuvedartiste
- Om Apache deze inhoud van deze map te laten serveren, is het nodig om een virtueel hostbestand met de juiste richtlijnen te maken. In plaats van het standaard configuratiebestand op /etc/apache2/sites-available/000-default.conf rechtstreeks te wijzigen, maken we een nieuw bestand /etc/apache2/sites-available/uw_domein.conf:
sudo nano /etc/apache2/sites-available/your_domain.conf
Bijvoorbeeld:sudo nano /etc/apache2/sites-available/epreuvedartiste.be.conf
- Plak in het bestand de volgende configuratieblok, het is vergelijkbaar met het standaard, maar bijgewerkt voor onze nieuwe directory en domeinnaam:
<VirtualHost *:80> ServerAdmin webmaster@localhost ServerName your_domain ServerAlias www.your_domain DocumentRoot /var/www/your_domain ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
Bijvoorbeeld
We voegen hier geenServerAlias
toe omdat het om een subdomein gaat. De map is de public_html map in de epreuvedartiste rootmap:<VirtualHost *:80> ServerAdmin webmaster@localhost ServerName epreuvedartiste.modernways.be DocumentRoot /var/www/epreuvedartiste/public_html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
- De standaardtoegang voor <Directory "/"> is om alle bestanden toegangkelijk te maken in de browser. Dit betekent dat Apache httpd elk bestand zal serveren dat in een URL is opgegeven en op de server wordt gevonden. Het wordt aanbevolen om dit te veranderen met een blok zoals:
<Directory "/var/www/epreuvedartiste/public_html"> Require all denied </Directory>
Je kan dit vervangen voor mappen die je wel toegankelijk wilt maken. Zie de pagina Beveiligingstips voor meer details. - Een htaccess-bestand
Het .htaccess-bestand in Apache is een tool die configuraties op directory- en submapniveau mogelijk maakt. Door .htaccess te gebruiken, kan je websitemachtigingen configureren zonder de serverconfiguratiebestanden te wijzigen. In de<Directory>
section moet je toestemming om de instellingen van de Apache server te kunnen overschrijven:<Directory "/var/www/epreuvedartiste/public_html"> AllowOverride All Require all denied </Directory>
- Je moet het subdomein nu enablen:
sudo a2ensite epreuvedartiste.be.conf
- Je kan die weer disablen met:
sudo a2dissite epreuvedartiste.be.conf
- Schakel de standaardsite uit die is gedefinieerd in 000-default.conf:
sudo a2dissite 000-default.conf
- We testen testen op configuratiefouten:
sudo apache2ctl configtest
- Je zou de volgende uitvoer moeten ontvangen:
Uitvoer Syntaxis OK
- Start Apache opnieuw om uw wijzigingen door te voeren:
sudo systemctl restart apache2
A Virtual Host is - in it's simplest form - configuration for a host -- your sub-domain.
You're going to want to access your server via SSH - PuTTy is an excellent program, however Digital Ocean offer a browser-based solution - use what's best for you.
(Assuming you have Apache installed already)
When using Apache 2 the .conf file should be in /etc/apache2/sites-available/.
Now update your Apache2 configuration.
We maken een bestand met de naam tower-pattern.conf met daarin:
<VirtualHost *:80> ServerName tower-pattern.anormapart.com DocumentRoot /var/www/tower-pattern.anormapart.com/ ServerAdmin jef.inghelbrecht@inantwerpen.com <Directory /var/www/tower-pattern.anormapart.com> Options FollowSymLinks AllowOverride All Order allow,deny Allow from all </Directory> </VirtualHost>
Je moet het subdomein nu enablen:
sudo a2ensite tower-patern.conf
Op deze site staat het anders: Enable the site in apache with:
sudo a2ensite sub.yourdomain.com
(or whatever you named your site in the config)
Je kan die weer disablen met:
sudo a2dissite tower-patern.conf
Sla dit bestand op in de sites-available map. De extensie moet conf zijn!
Now create /var/www/tower-pattern.anormapart.com and restart Apache2:
mkdir -p /var/www/towerpattern.anormapart.com sudo service apache2 restart
Om .htaccess te laten werken in een submap
In de <Directory> section van zowel apache2.conf als van de tower-pattern.conf moet je toestemming om de instellingen van de Apache server te kunnen overschrijven:
apache2.conf:
<Directory /var/www/> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory>
tower-pattern.conf:
<Directory /var/www/tower-pattern.anormapart.com> Options FollowSymLinks AllowOverride All Order allow,deny Allow from all </Directory>
CORS on Apache
To add the CORS authorization to the header using Apache, simply add the following line inside either the <Directory>, <Location>, <Files> or <VirtualHost> sections of your server config (usually located in a *.conf file, such as httpd.conf or apache.conf), or within a .htaccess file:
Header set Access-Control-Allow-Origin "*"
To ensure that your changes are correct, it is strongly reccomended that you use
apachectl -t
to check your configuration changes for errors. After this passes, you may need to reload Apache to make sure your changes are applied by running the command sudo service apache2 reload
or
apachectl -k graceful
.Altering headers requires the use of mod_headers. Mod_headers is enabled by default in Apache, however, you may want to ensure it's enabled by run
a2enmod headers
Note: you can also use add rather than set, but be aware that add can add the header multiple times, so it's likely safer to use set.
Subdomain aanmaken DNS provider
Onder ondertitel
, Apr 21, 2016
Maak een sub-domain
Creating the sub-domain is a CNAME record - setting it up is much like the A record, but instead of the @ as the hostname, we put the subdomain we want - for example; blog as the hostname will equate to blog.example.com.
- Press "Add Record" button on the top right
- Select the record type "CNAME"sudo su
- Enter the hostname as <subdomain name> ◦Replace <subdomain name> with what your want your sub-domain to be; ie blog.
- Enter the IP address as the server that your domain is going to point to
- This can be an entirely different server to the A record, or it can be the same.
- If it's the same server, point it to the A name hostname - @